package net.dgg.dggcloud.service.jrcrm.entity.customer;

import net.dgg.dggcloud.service.entity.BaseEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

/**
 * @ClassName: AttrCreditCard-客户信用卡信息
 * @Description: 用于客户信用卡信息维护
 * @Author: 周潮
 * @Date: 2017年11月03 14:28:28
 * @Version V1.0
 */
@Entity
@Table(name = "cus_attr_credit_card")
public class AttrCreditCard extends BaseEntity {

    //数据库表名
    public static final String TABLE_NAME = "cus_attr_credit_card";

    /**
     * 客户id 
     */
    @Column(name = "customer_id")
    private Long customerId;

    /**
     * 信用卡所有内容前台展示用
     */
    @Transient
    private String frontShow;

    /**
     * 额度 
     */
    @Column(name = "quota")
    private Double quota;

    /**
     * 额度-前台展示用
     */
    @Transient
    private String quotaShow;

    /**
     * 使用额度 
     */
    @Column(name = "usage_quota")
    private Double usageQuota;

    /**
     * 使用额度-前台展示用
     */
    @Transient
    private String usageQuotaShow;

    /**
     * 是否透支（1是0否）
     */
    @Column(name = "is_overdraft")
    private Integer isOverdraft;

    /**
     * 是否透支-前台展示用
     */
    @Transient
    private String isOverdraftShow;


    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "read_flag")
    private String readFlag;

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    @Column(name = "source_flag")
    private String sourceFlag;

    /**
     * 扩展字段1 
     */
    @Column(name = "ext1")
    private String ext1;

    /**
     * 扩展字段2 
     */
    @Column(name = "ext2")
    private String ext2;

    /**
     * 扩展字段3 
     */
    @Column(name = "ext3")
    private String ext3;

    /**
     * 扩展字段4 
     */
    @Column(name = "ext4")
    private String ext4;

    /**
     * 扩展字段5 
     */
    @Column(name = "ext5")
    private String ext5;

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @return read_flag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getReadFlag() {
        return readFlag;
    }

    /**
     * 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     * @param readFlag 外部系统读取标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setReadFlag(String readFlag) {
        this.readFlag = readFlag == null ? null : readFlag.trim();
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @return source_flag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public String getSourceFlag() {
        return sourceFlag;
    }

    /**
     * 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     * @param sourceFlag 外部系统来源标志 预留扩展字段，每外部系统占用一位，如1001
     */
    public void setSourceFlag(String sourceFlag) {
        this.sourceFlag = sourceFlag == null ? null : sourceFlag.trim();
    }

    /**
     * 客户id 
     * @return customer_id 客户id 
     */
    public Long getCustomerId() {
        return customerId;
    }

    /**
     * 客户id 
     * @param customerId 客户id 
     */
    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    /**
     * 额度 
     * @return quota 额度 
     */
    public Double getQuota() {
        return (null != quota ? quota/100 : null);
    }

    /**
     * 额度 
     * @param quota 额度 
     */
    public void setQuota(Double quota) {
        this.quota = (null != quota ? quota*100 : null);
    }

    /**
     * 使用额度 
     * @return usage_quota 使用额度 
     */
    public Double getUsageQuota() {
        return (null != usageQuota ? usageQuota/100 : null);
    }

    /**
     * 使用额度 
     * @param usageQuota 使用额度 
     */
    public void setUsageQuota(Double usageQuota) {
        this.usageQuota = (null != usageQuota ? usageQuota*100 : null);
    }

    /**
     * 是否透支 
     * @return is_overdraft 是否透支 
     */
    public Integer getIsOverdraft() {
        return isOverdraft;
    }

    /**
     * 是否透支 
     * @param isOverdraft 是否透支 
     */
    public void setIsOverdraft(Integer isOverdraft) {
        this.isOverdraft = isOverdraft;
    }

    /**
     * 扩展字段1 
     * @return ext1 扩展字段1 
     */
    public String getExt1() {
        return ext1;
    }

    /**
     * 扩展字段1 
     * @param ext1 扩展字段1 
     */
    public void setExt1(String ext1) {
        this.ext1 = ext1 == null ? null : ext1.trim();
    }

    /**
     * 扩展字段2 
     * @return ext2 扩展字段2 
     */
    public String getExt2() {
        return ext2;
    }

    /**
     * 扩展字段2 
     * @param ext2 扩展字段2 
     */
    public void setExt2(String ext2) {
        this.ext2 = ext2 == null ? null : ext2.trim();
    }

    /**
     * 扩展字段3 
     * @return ext3 扩展字段3 
     */
    public String getExt3() {
        return ext3;
    }

    /**
     * 扩展字段3 
     * @param ext3 扩展字段3 
     */
    public void setExt3(String ext3) {
        this.ext3 = ext3 == null ? null : ext3.trim();
    }

    /**
     * 扩展字段4 
     * @return ext4 扩展字段4 
     */
    public String getExt4() {
        return ext4;
    }

    /**
     * 扩展字段4 
     * @param ext4 扩展字段4 
     */
    public void setExt4(String ext4) {
        this.ext4 = ext4 == null ? null : ext4.trim();
    }

    /**
     * 扩展字段5 
     * @return ext5 扩展字段5 
     */
    public String getExt5() {
        return ext5;
    }

    /**
     * 扩展字段5 
     * @param ext5 扩展字段5 
     */
    public void setExt5(String ext5) {
        this.ext5 = ext5 == null ? null : ext5.trim();
    }

    public void setFrontShow(String frontShow) {
        this.frontShow = frontShow;
    }

    public String getQuotaShow() {
        return null != getQuota() ? "额度【"+ getQuota() + "元】;" : "";
    }

    public void setQuotaShow(String quotaShow) {
        this.quotaShow = quotaShow;
    }

    public String getUsageQuotaShow() {
        return null != getUsageQuota() ? "使用额度【"+ getUsageQuota() + "元】;" : "";
    }

    public void setUsageQuotaShow(String usageQuotaShow) {
        this.usageQuotaShow = usageQuotaShow;
    }

    public String getIsOverdraftShow() {
        if(null != isOverdraft){
            return 1 == isOverdraft ? "是否透支【是】;" : "是否透支【否】;";
        }else{
            return "";
        }
    }

    public void setIsOverdraftShow(String isOverdraftShow) {
        this.isOverdraftShow = isOverdraftShow;
    }

    public String getFrontShow() {
        return "有信用卡：" + getQuotaShow() + getUsageQuotaShow() + getIsOverdraftShow();
    }
}